home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ASTRNOMY / GRVKIT02.ZIP / GRAVKIT.DOC < prev    next >
Text File  |  1994-01-07  |  11KB  |  262 lines

  1.  
  2.  
  3.  
  4.                             GravKit v0.2  11-Dic-93
  5.                     
  6.                                  Manuale d'uso
  7.  
  8.  
  9.                                     *  *  *
  10.  
  11.  
  12. GravKit e' un insieme di programmi per la simulazione gravitazionale di un
  13. sistema di n-corpi. Si compone di tre procedure:
  14.        
  15.  Cluster   Esegue il calcolo vero e proprio a partire da un file contenente
  16.        la descrizione del sistema di n-corpi attraverso le sue condizioni
  17.        iniziali. Consente oltre alla visualizzazione grafica anche il
  18.        salvataggio dei movimenti calcolati in file di vario formato.
  19.        
  20.  Movie     Consente di leggere i file delle animazioni calcolate da cluster
  21.        e rappresentarle a video a varie velocita'.
  22.        
  23.  Genr      Procedura ancora in fase di sviluppo. Attualmente costruisce un
  24.        insieme di n-corpi con condizioni iniziali generate in modo
  25.        pseudo-casuale con possibilita' di regolare alcuni limiti.
  26.            
  27.            
  28. ********************************************************************************
  29.  
  30.  
  31. Premessa.
  32. ---------
  33.  
  34. Il nucleo del programma cluster e' stato ricavato da un articolo di Alfredo
  35. Di Stefano apparso sui numeri 4/93 e 5/93 della "Commodore Gazette". Dal
  36. relativo listato in liguaggio C per Amiga, ho estratto le funzioni 'Simulate'
  37. e 'ClusterLeggi'. La prima esegue il calcolo basandosi sulla legge di 
  38. gravitazione universale. Il calcolo viene eseguito senza alcuna ottimizzazione,
  39. tenendo conto ad ogni iterazione per ogni oggetto di tutti gli altri n-1
  40. oggetti. Questo comporta una relativa lentezza quando gli oggetti iniziano ad
  41. essere dell'ordine delle centinaia, anche se si dispone di un 486DX.
  42.  
  43.  
  44. Finalita' del programma.
  45. ------------------------
  46.  
  47. Ho scritto queste procedure con tre scopi principali:
  48.  
  49.  1) simulare l'interazione mareale di due galassie durante
  50.     una collisione o un passaggio ravvicinato
  51.  2) confrontare i risultati ottenuti, con quelli di una analoga procedura,
  52.     di un altro astrofilo, veloce ed ottimizzata ma ancora in fase di sviluppo
  53.  3) integrare i due lavori in un unico programma (NGC) dotato di molte funzioni
  54.     di un'interfaccia a menu semplice da usare e della possibilita' per
  55.     l'utente di inserire, utilizzare e confrontare propri algoritmi di calcolo
  56.     
  57. Ho quindi deciso di inserire la possibilita' di salvare le posizioni calcolate
  58. su un file per poterle poi rileggere velocemente, interrompere l'animazione nei
  59. momenti particolarmente significativi, tornare indietro, variare la velocita' di
  60. visualizzazione e confrontare i risultati con la procedura "furba" di cui sopra.
  61.  
  62.  
  63. Informazioni tecniche sul formato delle animazioni.
  64. ---------------------------------------------------
  65.  
  66. Attualmente le animazioni possono essere salvate in quattro formati distinti
  67. usando le seguenti opzioni del programa cluster:
  68.  
  69.    Opzione  Descrizione                                  Estensione 
  70.       
  71.       -n    uscita solo numerica generica                  .DAT
  72.       -h    uscita numerica ridotta (HGC e 3270) 720x348   .HGC
  73.       -c    uscita numerica ridotta (CGA)        320x200   .CGA
  74.       -v    uscita numerica ridotta (VGA e ATT)  640x480   .VGA
  75.         
  76. Nella prima vengono salvate le posizioni dell'oggetto in doppia precisione
  77. quindi 8 byte per coordinata. Questo consente di visualizzare l'animazione
  78. su qualunque scheda grafica, ma soprattutto permette un confronto, oggetto
  79. per oggetto, sull'approssimazione dei conti, rispetto ad altri algoritmi.
  80. Purtroppo il file risulta di dimensioni generose ed in genere incomprimibile.
  81. Con le restanti opzioni vengono salvati solo gli incrementi di posizione non
  82. in unita' di misura fisiche ma in pixel. Questo consente di memorizzare una
  83. coordinata in un solo byte. Si ottengono cosi' file ridotti ad 1/8 delle
  84. dimensioni originali ed in genere comprimibili con un rapporto variante da
  85. 1:1.5 a 1:5. Purtroppo questi file sono dipendenti dalla risoluzione grafica
  86. impostata.
  87.  
  88.  
  89. Fluidita' delle animazioni.
  90. ---------------------------
  91.  
  92. Per ottenere un'animazione fluida occorre che il file sia gia' pre-caricato
  93. interamente nella cache del disco ad esempio lanciando almeno una volta
  94. l'animazione.
  95. Occorre quindi caricare nel config.sys un programma di cache, come ad esempio
  96. il diffusissimo SmartDrive. Se avete installato MS-Windows 3.1, probabilmente
  97. questo e' gia' presente. Per verificare la quantita' di memoria allocata come
  98. cache, potete dare il comando:
  99.  
  100.             smartdrv /S <invio>
  101.  
  102. Eventuali discontinuita' nell'animazione possono dipendere da vari problemi
  103. e hanno varie soluzioni:
  104.  
  105.  Problema                            Soluzione
  106.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  107.  - Memoria cache inferiore alla      - Aumentare la memoria allocata
  108.    dimensione del file                 dallo SmartDrive
  109.                      - Usare un compressore del disco come
  110.                        Stacker e allocare la cache solo
  111.                        sulla partizione compressa (in cache
  112.                        viene tenuto il file compresso)
  113.  - Non si ha memoria estesa da       - Le interruzioni dipendono in gran
  114.    usare come cache del disco          parte da un file frammentato. Usare
  115.                        un deframmentatore del disco come il
  116.                        Compress (PcTools) o SpeedDisk (Norton)
  117.  
  118.  
  119.  
  120. Cluster.
  121. --------
  122.  
  123. Il programma cluster puo' essere chiamato con i seguenti paramatri:
  124.  
  125.  
  126. cluster <option> <res> filename <iterazioni>
  127.  
  128.      [option] = -g uscita solo grafica (default)
  129.           = -G uscita solo grafica senza tracce orbite
  130.           = -t uscita solo grafica con tracce orbite limitate
  131.           = -n uscita solo numerica generica
  132.           = -h uscita numerica ridotta (HGC) 720x384
  133.           = -c uscita numerica ridotta (CGA) 320x200
  134.           = -v uscita numerica ridotta (VGA) 640x480
  135.           = -gn uscita grafica e numerica
  136.     [res] = /0 autodetect della scheda grafica (default)
  137.           = /1 CGA 320x200 4 colori
  138.           = /2 HGC 720x384 2 colori Hercules
  139.           = /3 ATT 640x400 2 colori Olivetti
  140.           = /4 VGA 640x480 16 colori
  141.  [iterazioni] = numero di posizioni da calcolare (solo con -n|-h|-c|-v)
  142.  
  143.  
  144. L'unico parametro non opzionale e' il nome del file che deve essere completo
  145. dell'estensione. Ad esempio:
  146.  
  147.            cluster sunearth.clu
  148. equivale a:
  149.            cluster -g /0 sunearth.clu
  150.  
  151. Il formato dei file .CLU e' facilmente intuibile dagli esempi:
  152.  
  153. INIZIO_DATI: SunEarth.clu
  154. DELTA 0.00027
  155. PROXIMITY 0.001 
  156. MAGNIFICATION 0.001
  157. #BODY 2
  158. COORDINATES_XYZ              VELOCITY_XYZ         MASS        COLOR
  159.    0    0     0           0.00   0.00   0.00      2.00           4
  160.    1    0     0           0.00   8.88   0.00      1e-6           1
  161. FINE_DATI
  162.  
  163. La prima e l'ultima riga vengono ingnorate, i parametri Delta, Prossimita' e 
  164. Scala, sono preceduti da una parola di commento, cosi' come il numero dei corpi
  165. che determina quante linee saranno interpretate nella sottostante tabella delle
  166. condizioni iniziali.
  167.  
  168. Le unita' di misura sono in U.A. per le distanze, in U.A. all'anno per le
  169. velocita' ed in multipli della massa solare per la massa.
  170. Potra' sembrare strano cercare di descrivere oggetti come le galassie con
  171. queste unita' di misura. Tuttavia guardando i valori nel file g12_nu2.clu si 
  172. potra' notare che non sono molto elevati. Infatti basta che vi sia la giusta
  173. proporzione tra masse e distanze ed il gioco e' fatto. Tuttavia nella prossima
  174. versione aggiungero' la possibilita' di inserire nel .CLU anche il valore della
  175. costante di gravitazione universale in modo da scegliere a piacere il sistema
  176. delle unita' di misura e poter cosi' inserire valori piu' realistici nelle
  177. condizioni iniziali.
  178.  
  179. I colori sono codificati secondo la sequente tabella e hanno signficato solo
  180. in modo VGA e CGA:
  181.  
  182.               VGA COLOR    |  #  | CGA COLOR
  183.             ---------------------------------
  184.               BLUE         |  1  | LIGHTGREEN 
  185.               GREEN        |  2  | LIGHTRED     
  186.               CYAN         |  3  | YELLOW
  187.               RED          |  4  | LIGHTGREEN 
  188.               MAGENTA      |  5  | LIGHTRED     
  189.               BROWN        |  6  | YELLOW
  190.               LIGHTGRAY    |  7  | LIGHTGREEN 
  191.               DARKGRAY     |  8  | LIGHTRED     
  192.               LIGHTBLUE    |  9  | YELLOW
  193.               LIGHTGREEN   | 10  | LIGHTGREEN 
  194.               LIGHTCYAN    | 11  | LIGHTRED     
  195.               LIGHTRED     | 12  | YELLOW
  196.               LIGHTMAGENTA | 13  | LIGHTGREEN 
  197.               YELLOW       | 14  | LIGHTRED     
  198.               WHITE        | 15  | YELLOW
  199.               
  200.               
  201.               
  202. Movie.
  203. ------
  204.  
  205. Il programma movie puo' essere chiamato con i seguenti paramatri:
  206.  
  207. movie [opt] [res] filename.<ext> [delay]
  208.  
  209.      [opt] = -t tracciamento orbite attivo
  210.      [res] = /0 autodetect della scheda grafica (default)
  211.        = /1 CGA  320x200 4 colori
  212.        = /2 HGC  720x348 2 colori Hercules
  213.        = /3 3270 720x350 2 colori PC3270
  214.        = /4 ATT  640x400 2 colori Olivetti
  215.        = /5 VGA  640x480 16 colori
  216.    [delay] = ritardo di fotogramma in ms (default->0)
  217.      <ext> = dat -> file generico (double) e grafica di default
  218.        = cga -> file compresso per grafica CGA
  219.        = hgc -> file compresso per grafica HGC e PC3270
  220.        = vga -> file compresso per grafica VGA e ATT
  221.  
  222. L'estensione del nome del file e' determinante per settare l'opportuno modo
  223. grafico. Se tuttavia l'autodetect fallisse si puo' forzare una qualsiasi scheda.
  224. Ad esempio su un Olivetti M24 per visualizzare un file .VGA bisognera' dare:
  225.  
  226.           movie /4 nomefile.vga
  227.           
  228. se si vogliono delle traccie lunghe 30 posizioni e un ritardo di 0.3 secondi
  229. a fotogramma:
  230.  
  231.           movie -t30 /4 nomefile.vga 300
  232.  
  233. Lanciato il programma si puo spostare l'immagine usando i cursori. Quindi far
  234. partire l'animazione premendo la barra. Questa puo' quindi servire come
  235. tasto PAUSE. A fine animazione si puo' ritornare indietro col tasto "<" mentre
  236. se si preme il tasto "l" all'inizio si ha un ciclo infinito.
  237. In qualsiasi istante si puo' uscire dal programma con il tasto ESC.
  238.  
  239.  
  240. ********************************************************************************
  241.  
  242. Nessun compenso e' richiesto per questo programma che puo' essere distribuito
  243. gratuitamente bla bla...
  244.  
  245. Ho inserito questo programma nel pubblico dominio per valutare l'interesse
  246. presso la comunita' degli astrofili; se siete quindi interessati e volete che
  247. venga distribuita anche la prossima versione mandatemi una cartolina postale
  248. o una email su internet.
  249.  
  250.        Alessandro Freda 
  251.        Via Maona 3/10
  252.        16155 Genova-Pegli
  253.  
  254. email: freda@dist.dist.unige.it
  255.  
  256. Se vi saranno molte persone interessate faro' l'upload della prossima
  257. versione su bbs e internet.
  258. Sono graditi suggermenti, consigli, bibliografia, notizie su bug e simili.
  259. In ogni caso tenete conto che questa e' pre-pre release.
  260.  
  261. ********************************************************************************
  262.